// #ifdef APP-PLUS
const updateModule = uni.requireNativePlugin('Chen-Update')
// #endif

export function getVersion() {
  // #ifdef APP-PLUS
  return new Promise((resolve) => {
    updateModule.getVersion((res) => {
      resolve(res)
    })
  })
  // #endif
}

export function appUpgrade() {
  // #ifdef APP-PLUS
  let options = {
    i18n: 'zh',
    title: this.$t('utils_upgrade_index_msg_78f2095f'),
    titleEn: 'Discover a new version',
    version: '1.0.1',
    versionInfo: '\r\n1、修复部分已知问题。\n2、优化了部分组件功能。\n3、新增更多使用演示。',
    versionInfoEn:
      '\r\n1、Fix some known problems.\n2、The functions of some components are optimized.\n3、Add more usage demonstrations.',
    // 该下载包是1.0.0安装完成后还是能通过更新检查
    downloadUrl:
      'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-ed59a1a4-e5db-43ec-a32a-2095ddab07e2/57ae7847-a0ac-477f-b7f3-f54941ee4a00.wgt',
    // ios苹果商店地址
    // downloadUrl: "https://apps.apple.com/cn/app/%E5%BE%AE%E4%BF%A1/id836500024?mt=12",
    updateStatus: 1,
    // isIgnorable: true,
    topImage: '/static/bg_update_top.png',
    themeColor: '#ffa44a',
    btnText: this.$t('utils_upgrade_index_msg_2541ca48'),
    btnTextEn: 'Update now',
    // apkSize: 12333, // apk安装包大小，不填不显示新版本包大小
    // apkMd5: 'xxxxxx', // 此值不可乱填哟，apk真实md5值，安装时会对比确保app没有被攥改以及不重复下载，乱填会导致安装失败

    // 跳转应用市场（会检测手机是否有安装这些应用市场，有按优先级跳转应用市场）
    // marketList: ['com.huawei.market','com.xiaomi.market']

    // customAction: "true" //  自定义事件，为兼容iOS其他场景
  }
  plus.runtime.getProperty(plus.runtime.appid, function (widgetInfo) {
    uniCloud.callFunction({
      name: 'check-version',
      data: {
        appid: plus.runtime.appid,
        appVersion: plus.runtime.version,
        wgtVersion: widgetInfo.version,
      },
      success: (res) => {
        let result = res.result
        if (result.code == 0) {
          return uni.showToast({
            title: this.$t('utils_upgrade_index_msg_b520fb4d'),
          })
        }

        options = Object.assign(options, result)
        options.versionInfo = result.contents
        options.downloadUrl = result.url

        updateModule.checkUpdate(options, (res) => {
          if (res.success && res.data) {
            plus.runtime.install(
              res.data.absolutePath,
              {
                force: false,
              },
              function () {
                // 解决热更新不更新包信息问题做内部比较简化使用
                updateModule.updateComplete()
                //进行重新启动;
                plus.runtime.restart()
              },
              (e) => {
                console.log(e)
              }
            )
          } else {
            uni.showToast({
              title: res.msg,
              icon: 'none',
            })
          }
        })
      },
      fail: (error) => {
        console.log('error :>> ', error)
      },
    })
  })
  // #endif
}

export function mpUpgrade() {
  // #ifdef MP-WEIXIN
  //小程序更新
  if (uni.getUpdateManager) {
    const updateManager = uni.getUpdateManager()
    updateManager.onCheckForUpdate(function () {
      // 请求完新版本信息的回调
      // console.log(res.hasUpdate);
    })
    updateManager.onUpdateReady(function () {
      uni.showModal({
        title: this.$t('utils_upgrade_index_msg_c9a507ee'),
        content: '新版本已经准备好，是否重启应用？',
        success(res) {
          if (res.confirm) {
            // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
            updateManager.applyUpdate()
          }
        },
      })
    })
    updateManager.onUpdateFailed(function () {
      // 新的版本下载失败
      uni.showModal({
        title: '已经有新版本了哟~',
        content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
        showCancel: false,
      })
    })
  }
  // #endif
}
